perm filename PPK.FAI[HAK,HPM]17 blob
sn#460770 filedate 1979-07-18 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00012 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE PPK
C00004 00003 08/14/78 EJG *** bug below has supposedly been fixed ***
C00007 00004 BEG0: SETOM LINN
C00009 00005 BEG2: PUSHJ P,HIDCHK
C00015 00006 EINIT: SKIPE EINITD
C00017 00007 HIDDEN←←200000 BIT IN LSTESC(LINE) RH
C00020 00008 LINED:
C00023 00009 LFEND: SKIPN NEEDLF check if last line had lf
C00025 00010 DISP1: MOVEI C,0
C00028 00011 RCHNW: MOVE C,[700,,WRD-1]
C00030 00012 APNT: (A). RH GETS CLOBBERED AT SETPR2 TIME
C00032 ENDMK
C⊗;
TITLE PPK
A←1
B←2
C←3
D←4
E←5
f←6
ppos← 7
pnt←10
len←11
NLFS←12
col←13
DAT←14
CB←T←15
TT←16
P←17
LPDL←←69
BFSZ←←10000
INTTTY←←20000 ;interrupt bit for tty input (left half)
TTYNUM←←221 ;contains numbers of various kinds of terminal lines
SYSTOP←←265
CHKBEG←←223
LEBUF←←330 ;Displacement of actual line editor buffer from beginning of dpy hdr
LEPOS←←334
LSTESC←←333
LINK←←65 ;displacement in PP of link to next PP (DPYSER)
JOBAPR←←125
MAXWIN←←=33
WTXTSZ←←MAXWIN*=100/5
CDPYBS: 2450 ;value of DPYBSZ (from E) ***09/13/77 00:15--NOT USED***
ADPYBU: 1236 ;address of DPYBUF (from E) ***09/13/77 00:15--NOT USED***
AWINLI: 0;13217 ;address of WINLIN (from E)
ABOTST: 0;4123 ;address of BOTSTR (from E)
AHEDBL: 0;13223 ;address of HEDBLK (from E)
ATRLBL: 0;13222 ;address of TRLBLK (from E)
resstr: 4000,,520 ;<break>P
reswho: 4000,,127 ;<esc>W (gets changed)
respag: resstr-.,,resstr
; 08/14/78 EJG *** bug below has supposedly been fixed ***
; 07/05/78 EJG - someday fix to do tabs right - bug e.g. PPKing on a DSKSIZ on DM
START:
CALLI A,24
HRRZ A,A
MOVEM A,TESTXX#
SETZM TESTYY#
MOVN B,[=30337167360]
CAIE A,=154279
CAIN A,=199526
CAIA
CAIN A,=166957
SETOM TESTYY
SKIPE TESTYY
CALLI B,43
HRROI C,[015000,,D]
TTYSET C, ;get display height in D
SUBI D,3 ;-3 for who line
MOVEM D,DPYHT
HRROI B,[42000,,B]
TTYSET B, ;GET CURRENT WHOLINE JOB NUMBER IN B
LSH B,=9
SKIPG B
MOVEI B,200
ADD B,[4000,,200+"W"] ;CREATE ESC-#-W OR BREAK-W AS NEEDED
MOVEM B,RESWHO
HRRZI A,[DISMIS] ;INTERRUPT ROUTINE WILL WAKE US UP IF
MOVEM A,JOBAPR ;TTY INPUT OR CLOCK RUNS OUT
MOVSI A,INTTTY
INTENB A,
START0: SETZM EMODE
SETOM LINN
MOVE P,[-LPDL,,PDL]
MOVEI A,LEBUF
PEEK A,
MOVEM A,DLEBUF ;Displacement of editor buffer from dpy hdr addr
MOVEI A,LEPOS
PEEK A,
MOVEM A,DLEPOS ;Displacement of editor position
MOVEI B,TTYNUM
PEEK B,
MOVEI C,0
MOVEI A,0
LSHC A,9
ADDI C,(A)
JUMPN B,.-3
MOVEM C,TTYMAX#
MOVEI A,CHKBEG
PEEK A,
MOVEM A,CCHKBEG
LSH A,-9 ;# LO PIECE PAGES
MOVEI B,SYSTOP
PEEK B,
PEEK B,
MOVE C,CCHKBEG
SUB C,B
MOVEM C,CBMST ;CHKBEG-SYSTOP
LSH B,-9+5 ;STARTING HI PIECE PAGE # * 40
ADDI B,10 ;SET 2-PIECE FLAG
HRL B,A
MOVEM B,XGETHI
GETHI B,
JRST 4,.
MOVE A,400321
HLRZM A,TBLKPT
HRRZM A,TPJMP
MOVE A,400322
HRRZM A,PPCALL
MOVE A,400236
MOVEM A,JBTLIN
MOVE A,400237 ;GET POINTER TO LETAB ENTRY OF FIRST III
MOVEM A,LETAB
LDB A,[POINT 9,400221,8] ;GET SCNNUM (NUMBER OF TTYS), WHICH IS ALSO
MOVEM A,DPYL0# ; THE NUMBER OF THE FIRST III
BEG0: SETOM LINN
BEG: MOVE A,LINN
JUMPGE A,BEG2
OUTSTR [ASCIZ/Line? /]
NXCH: INCHWL A
HACH: CAIN A,175
JRST BEG ;USE ALT TO WAKE UP EARLY
CAIN A,15
JRST [ INCHWL
EXIT 1,
JRST START0]
CAIE A,11
CAIN A,40
JRST NXCH
SUBI A,60
REELUP: INCHWL C
CAIN C,15
JRST [INCHRW T
JRST BEG3A]
LSH A,3
ADDI A,-"0"(C)
JRST REELUP
BEG3A: CAIL A,0 ;CHECK FOR REASONABLENESS
CAMLE A,TTYMAX
JRST [ OUTSTR [ASCIZ/Invalid line number!
/]
CRUFT: move a,respag ;block to reset the page printer
ttyset a,
JRST START0]
MOVEM A,LINN
SETZM HIDFLG# ;NEW NUMBER, HAVEN'T YET CHECKED HIDE BIT
MOVEI B,LSTESC
PEEK B,
MOVEI B,(B) ;DISCARD JUNK FROM LH
ADDI B,(A)
MOVEM B,HIDWRD#
PUSHJ P,HIDCHK
JRST BEG0
LSH A,9 ;TYPE <BRK> <LINE NUMBER> W
ADD A,[4000,,600+"W"]
HRROI B,[42000,,B] ;BUT FIRST...
TTYSET B, ;GET CURRENT WHOLINE JOB NUMBER IN B
JUMPLE B,NOWHO ;IF NONE, DON'T SHOW WHOLINE
HRROI B,A
TTYSET B,
NOWHO: MOVE A,LINN
JRST BEG2A
BEG2: PUSHJ P,HIDCHK
JRST BEG0
BEG2A: ADD A,LETAB ;ADD POINTER TO FIRST III'S LETAB ENTRY
SUB A,DPYL0
MOVEI B,400000(A)
MOVEM B,LEENT
HRRZ A,400000(A)
JUMPE A,[ OUTSTR [ASCIZ/Not in use or not a display.
/]
JRST CRUFT]
MOVE T,CBMST
ADDI T,400000
HRRM T,APNT
SUBI T,2
HRLI T,-20
MOVSM T,JMPOFF
ADD A,PPCALL
HLRZ A,@APNT
SKIPN EMODE
JRST NEMODE
MOVE B,A
ADDI A,LINK ;go to secondary PP if E mode
HRRZ A,@APNT
SKIPN A ;but not if there isn't one
MOVE A,B
NEMODE: MOVEI B,1(A)
ADD B,TPJMP
HRLM B,ENDTST
ADD A,TBLKPT
HRRZ A,@APNT
ADD A,APNT
HRLI A,444400
MOVEM A,DLISTL
SETZM CCNT
SETZM MAYTAB
MOVNI A,69
MOVEM A,BLKCNT
SKIPN EMODE
JRST NEMOD2
PUSHJ P,EINIT
JRST NEMOD2 ;EINIT failed
MOVEI A,B
MOVE B,LINN
TTYJOB B,
HRRO C,AWINLI
MOVEI D,WINLIN
JOBRD A,
JRST NEMOD2
MOVE C,WINLIN
MOVEM C,ANXTLN
MOVE C,[WINBLK,,WINBLK+1]
SETZM -1(C)
BLT C,WINBLK+MAXWIN-1
MOVE E,[-MAXWIN-1,,WINBLK-1] ;pointer list
MOVE F,[-WTXTSZ+40,,WINTXT] ;text storage
HRRO C,AHEDBL
MOVEI D,HEDBLK
JOBRD A,
JRST NEMOD2
HRRO C,ATRLBL
MOVEI D,TRLBLK
JOBRD A,
JRST NEMOD2
MOVE C,HEDBLK
ADD C,[-40,,-1]
HRRZ D,F
JOBRD A,
JRST NEMOD2
HRRZ C,(F) ;total wdcount
ADDI C,-2(F) ;last text wd
HRLZ C,C ;to LH
HRRI C,4(F) ;first text wd
MOVEM C,DLHED
HRRZ C,(F) ;total wdcount
HRL C,C ;in both halves
ADD F,C ;update textptr
SETZM -1(F) ;Sigh. To stop text group.
MOVE C,TRLBLK
ADD C,[-40,,-1]
HRRZ D,F
JOBRD A,
JRST NEMOD2
HRRZ C,(F) ;total wdcount
ADDI C,-2(F) ;last text wd
HRLZ C,C ;to LH
HRRI C,4(F) ;first text wd
MOVEM C,DLTRL
HRRZ C,(F) ;total wdcount
HRL C,C ;in both halves
ADD F,C ;update textptr
SETZM -1(F) ;Sigh. To stop text group.
EWINLP: MOVE C,ANXTLN
CAMN C,ABOTST
JRST EWINDN ;finished (bottom of page)
AOBJP E,EWINDN;finished (MAXWIN lines done)
JUMPGE F,EWINDN;out of space (in text area)
ADD C,[-40,,-1]
HRRZ D,F
JOBRD A,
JRST NEMOD2
HRRZ C,1(F)
MOVEM C,ANXTLN
HRRZ C,(F) ;total wdcount
ADDI C,-2(F) ;last text wd
SKIPGE 3(F)
SUBI C,3 ;correct last wd adr if page mark line
HRLZ C,C ;to LH
HRRI C,4(F) ;first text wd
MOVEM C,(E)
HRRZ C,(F) ;total wdcount
CAILE C,100
JRST NEMOD2
HRL C,C ;in both halves
ADD F,C ;update textptr
SETZM -1(F) ;Sigh. To stop text group.
JRST EWINLP
EWINDN:
MOVEI A,DLIST
CAIA
NEMOD2: MOVEI A,DLISTL
MOVEM A,DLISTP
HRRZ A,(A)
HRLI A,444400
MOVEM A,WRDP
MOVEI F,0
MOVEI NLFS,0
MOVEI LEN,0
MOVE PNT,[POINT 7,PPAGE+2]
LF0: MOVEI COL,0
LF1: PUSHJ P,RCH
JRST LINED
CAIN C,12
JUMPE F,[ LDB C,PNT ;empty line, must put a space on it
CAIN C,15 ;to make sure display gets cleared
SOJA LEN,$.+2 ;if cr present, overwrite with space
IBP PNT ;if no cr, skip to new position
MOVEI C,40
DPB C,PNT
MOVEI C,15
IDPB C,PNT
MOVEI C,12
IDPB C,PNT
ADDI LEN,3
AOJA NLFS,LF0]
CAIA C,15
MOVEI F,-12(C) ;remember if last non-cr was a lf
IDPB C,PNT
CAIN C,12
JRST [ADDI NLFS,1
AOJA LEN,LF0]
CAIN C,11
JRST LTAB
ADDI COL,1
AOJA LEN,LF1
LTAB: MOVEI C,40
IDPB C,PNT
ADDI LEN,1
ADDI COL,1
TRNE COL,7
JRST LTAB
AOJA LEN,LF1
EINIT: SKIPE EINITD
JRST CPOPJ1
MOVE B,LINN
TTYJOB B,
JUMPLE B,CPOPJ
SEGNUM B,
JUMPE B,CPOPJ
DETSEG 0,
PUSH P,[EINRET] ;set exit to re-do GETHI
ATTSEG B,
POPJ P,
MOVE A,400011 ;addr(BOTSTR)
HRRZM A,ABOTST
MOVE A,400016 ;addr(DRAW)
MOVE A,3(A) ;DRAW+3: JRST DRAWM
HLRZ B,A
CAIE B,(<JRST>)
POPJ P,
MOVE A,0(A) ;DRAWM: PUSHJ P,DISP0
HLRZ B,A
CAIE B,(<PUSHJ 17,>)
POPJ P,
MOVE A,5(A) ;DISP0+5: PUSHJ P,WINCHK
HLRZ B,A
CAIE B,(<PUSHJ 17,>)
POPJ P,
MOVE C,A ;save PUSHJ P,WINCHK
MOVE A,-12(A) ;WINCHK-12: MOVEM T,WINLIN#
HLRZ B,A
CAIE B,(<MOVEM 15,>)
POPJ P,
HRRZM A,AWINLI
MOVE A,2(C) ;WINCHK+2: JRST CENWIN
HLRZ B,A
CAIE B,(<JRST>)
POPJ P,
MOVE A,4(A) ;CENWIN+4: AOJA A,SETWIN
HLRZ B,A
CAIE B,(<AOJA 1,>)
POPJ P,
MOVE C,A ;save AOJA A,SETWIN
MOVE A,6(A) ;SETWIN+6: MOVEM B,HEDBLK#
HLRZ B,A
CAIE B,(<MOVEM 2,>)
POPJ P,
HRRZM A,AHEDBL
MOVE A,12(C) ;SETWIN+12: MOVEM B,TRLBLK#
HLRZ B,A
CAIE B,(<MOVEM 2,>)
POPJ P,
HRRZM A,ATRLBL
SETOM EINITD
JRST CPOPJ1
EINRET: CAIA
AOS (P)
MOVE A,XGETHI
GETHI A,
HALT .
POPJ P,
HIDDEN←←200000 ;BIT IN LSTESC(LINE) RH
HIDCHK: SKIPE HIDFLG ;ALREADY OVERRIDDEN?
JRST CPOPJ1 ;YES, OK
SETO B,
GETLIN B ;GET OUR OWN LINE NUMBER
MOVEI B,(B) ;NO BITS
MOVEM B,TTMTTY ;SAVE IN CASE NEEDED FOR OVERRIDE MSG
CAMN B,LINN
JRST CPOPJ1 ;ALLOW PEEK OF HIDDEN SELF WITHOUT ASKING
MOVE B,HIDWRD
HRRZ CB,CCHKBEG ;BREAK IN NON-SHUFFLING SYSTEM
CAIGE CB,(B) ;PAST BREAK IN SYSTEM?
ADD B,CBMST ;ADD CHKBEG-SYSTOP
MOVE B,400000(B)
TRNE B,HIDDEN
PUSHJ P,OVRRID ;HIDDEN--ASK IF WANT TO OVERRIDE (SKIP IF NOT)
CPOPJ1: AOS (P) ;SKIP-RETURN UNLESS HIDDEN AND NOT OVERRIDING
CPOPJ: POPJ P,
OVRRID: PPSEL 0
PGACT 0
HRROI B,RESSTR ;RESTORE SCREEN
TTYSET B,
MOVEI B,1
SLEEP B, ;Wait for screen redrawing
OUTSTR [ASCIZ /Hidden (ESC H typed). Override? /]
CLRBFI
INCHWL B
CLRBFI
CAIE B,"y"
CAIN B,"Y"
CAIA ;OK
JRST CPOPJ1
GETPPN B,
MOVEM B,TTMPRG ;SAVE HERE TEMPORARILY
HLLZS B
MOVEI D,TTMPRJ
PUSHJ P,TTMSIX
HRLZ B,TTMPRG
MOVEI D,TTMPRG
PUSHJ P,TTMSIX
MOVE B,TTMTTY
MOVEI D,TTMTTY
PUSHJ P,TTMOCT
MOVE B,LINN ;TELL THE GUY
MOVEM B,TTYMNO
BEEP B,
MOVEI B,TTYMNO
NULMES B,
JFCL
OUTSTR [ASCIZ /
The terminal you are spying on has been notified.
/]
SETOM HIDFLG
MOVEI B,2
SLEEP B, ;GIVE HIM TIME TO SEE IT!
POPJ P,
TTYMNO: 0
BYTCNT,,TTMMES
TTMMES: ASCII /;;You are being spied on with PPK by [/
TTMPRJ: 0
ASCII /,/
TTMPRG: 0
ASCII /] on TTY/
TTMTTY: 0
ASCII /.
/
BYTCNT←←<.-TTMMES>*5
TTMSIX: SETZM (D) ;NO EXTRANEOUS CHARACTERS
HRLI D,440700
SIXLP: MOVEI C,0
ROTC B,6
JUMPE C,SIXLP1
ADDI C,40
IDPB C,D
SIXLP1: JUMPN B,SIXLP
POPJ P,
TTMOCT: SETZM (D)
HRLI D,440700
OCTLP: IDIVI B,10
JUMPE B,OCTLP1
HRLM C,(P)
PUSHJ P,OCTLP
HLRZ C,(P)
OCTLP1: ADDI C,"0"
IDPB C,D
POPJ P,
LINED:
MOVEM F,NEEDLF#
SKIPN DAT,@LEENT ; append line editor
JRST LFEND
MOVEI B,(DAT)
ADD B,DLEPOS ;FIND LEYPOS CELL IN DPY HDR
HRRZ CB,CCHKBEG ;BREAK IN NON-SHUFFLING SYSTEM
CAIGE CB,(B) ;PAST BREAK IN SYSTEM?
ADD B,CBMST ;ADD CHKBEG-SYSTOP
ADDI B,400000
SKIPL B,(B)
JRST ONSCRN ;SIGN BIT OFF, NORMAL LINE EDITOR POSITION
LDB B,[POINT 11,B,21] ;SIGN BIT ON, CHECK POSITION (BITS 11:21)
TRNN B,1⊗=10 ;POSITIVE?
CAIG B,1000 ;OFF SCREEN?
JRST ONSCRN ;PROBABLY NOT
JRST LFEND ;YES
ONSCRN: ADD DAT,DLEBUF ;Point to buffer itself
CAIGE CB,(DAT) ;PAST BREAK IN SYSTEM?
ADD DAT,CBMST ;ADD CHKBEG-SYSTOP
ADDI DAT,400000
MOVE F,DAT ;Make copy of pointer for depositing
MOVEI A,1
LIE: TDNE A,(DAT) ;Is this a text word?
AOJA DAT,LIE ;Yes
CNTDN: CAMN F,DAT
JRST LFEND ;Empty line editor
HRLI F,440700
SUBI DAT,1 ;Point to last real @QKqhA]←eHA%\AEkα3≠↔HhP&"JdIα∩ε aEAA8εβH↔8'O&T∞εnNnLW∩πMtε=_<@⊂_2s7i→P"gf⊂d)⊂ )n bu→MKd~(~∀∪≠=-~A1⊂→2≤
Z2⊗r_%o'rβππO*α2∃β.s∪Mβ>KS!β∨∪3→#N)β'S~β↔↔rβO↔;"I04(Lj>Z⊗jαB:Qe~εZBu!%o≡[∃βf+9βπv!βC;"βO=β>)β∂πrβπ∂ZβW@4Ph*2⊗≥→h&∞j9α→d"εP$K[∂#↔≡Yβ'→ε+;⊃β␈3↔KO&+CC↔ h(&*∃~Qα24z<4(LJ2∩ ∧→2_4PJ∞ε&*α
1E;84(&≤
&9α~aEP$K[OS?αβ?9β7+;;eε≠#πK∞≠S↔K_h(&*∃~Qα24z<4(L~ε&∃∧→1ELhP&∞εLqα
1h(&*∃~Qα24z<4(L~ε&∃∧→1ETHIo'→εc';∃ε+;∪MεK9↓s∨⊃yβ?∩↓s3→ph(&∞J9α
c H$%↑KSMβ∞cK↔π'Iβ↔.qβO↔w!1β∪}sQβ∪πIβ'PhP&*J≥!α
ε≤ZV@4PJ∞ε&rα
1E;(4(&U∩NQα∀
∞.Vh(&&%α α
eα:P$K[;?Kn33ebβ∪↔C␈≠'P4PJε>*
α2⊗9db⊗∞LHIoπ;"βπ∂∂␈+;P4Ph*2~|yh&N-">4&t*⊗∩20H%o←*β∪'∪r;Qβ'w≠↔KQε≠K3_hP&*J≥ &2~,r⊂4(hR
ε∞]*Ah&≤Z&B8L*6>∩(H%o'2α∃β7}#∃1β&{9∨Qε+[↔Iε33WOBβ3';*β↔∪'&{H4(LRJNPL∩ε∞.¬(4(&≤
&∀&~aEH4PJN⊗R|h&:⊗,"2_4PJ*JN J2~⊗t 4*
~.BUPJ6>Z(JB:Qe~εZBu $%o⊗+OS?⊗)β∪↔ε{O'SNs≥βO#∃βCw#H4(Lj>Z∀Lb⊗92≤
Z2⊗pH%oπv!β∂#∂∪π∂S/⊃β∂; h(22~,r⊃h&≤Z&B8Lr⊗⊗∩d0$%o≡C↔∂-εK→β3∂≠Qβ3Ns∃β#∞!β3_hP&*J≥ &2~$z:∀$K['→β≡y1β∪}q∨Qβ∞#⊃β↔G#K¬β}s∀4(Lj>Z⊗HJ
1Qh(&&%αλ&
eα:P$K[?S#/∪←'O*βπ∪⊃π≠Cπ∂*β∂Iβf04(&lzZ⊗$L→1EThP&&∩∧⊂&
2∧rP4(Lj>Z⊗HJ
1E⊂h(&&%αλ&
eα:P4PJε∩∩HJ2⊗9c_4(&"∩$&tb~M1λh*2~$z:∃i¬~.&Bd(&∩BLBP$%↑K→β;␈!β¬β&KOC3∂I1βSOβ∃β?/!β←#}c∃β.3≠↔HhP&∞εlp&:25→2∩BLBP%oN1β+W∨!βK'>CQβ;.k↔Iε{→β3Ns↔L4PJ*JN J∩&Nβλ$%o&KOC3∂Iβ'7n+∪'π&+3d4PJ∞ε6`J:2~~b∩BfE %o'2βS?=ε3↔\4PJ*JN JNFVM~ 4*≥α2>=PJ6>Z,H&
1#$%o∞#⊃βf;-βfK;↔LhP&&∩∧⊂&
2∧rP4(Lj>Z⊗HJ
1E(h(&&%αλ&
eα:P4PJ6>Z,H&
1⊂4(&L"Bλ&~bB:PhP&ε∩$H&2⊗raL4(L
∩∩$Lr2~Mcλ4(&≤
6≡∀Lr2~Md"Bf" h(&*∃~P&N∧b><4PJ*JN J∩&Nβλ$4(hRNFVM~!iαlzZ∀&
bnB>LrQ↓]eαBε≡*YJu↓↑kWOQε∪∃βS}yβ7πwIβ3'v+M1β⊗+7?[*βO?7(h*NF,
N!hLJ2∩λL→2∧4PJ∞ε&(J
1E⊂h(&*∃~P&N
*εN hP&NV∀H&:25→1D4PJ∞ε6d(&:25→2∩BLBP4(LRJNPM~FVε≤@4(&lzZ∀&∧rQ2n∧z&:Qβ92BB:∃-Jhh(&N-"h&2,q04*≥
V>NCP&&2$⊂&
2λh(&&%αλ&
eα:P4PJε∩∩HJ2⊗9cλ4(&≤
&∀&~aEH4PJ*JN JNFV⎇~ 4(M~>*≤Lr2~Me~FV>≤@4(4PJ6>Z(J:2~~b∩BfE 4(2∩&≥↓Eh&lzZ⊗$L→1@4PJJ⊗B,
Q↓↓↓3n&%α α
eα:SxhP'7?6+%β
c1#3↔rH$$%↑3';⊃εsW7/⊃β?→π;?K∪~β≠?Iπ≠SK'v84('N#'[%ε→1T4PKπ∪∪Jβ
1M[λ4('G∪K5β~cW≠7βQ-DhP4('n{[;%ε 1D4PK∨↔SfK9β∧HH%o∨/!βSgε)β?→π#↔K7Nsπ04PJR2:*α¬1Qβ↓A@4PJ*JN"αn6>4)α 2$jε≡∀HIo'S~β¬α∩hh(%↓α↓↓↓αlzZ⊗5∧⊃2BB:∀4(J↓↓↓↓αα6>Z*↓α 2$jε≡∃[λ4)↓α↓↓↓↓α↓↓↓↓α↓α6>4*5α eαBε≡*YD4)α↓↓↓↓α↓↓↓↓α↓↓α*∃~Qα≡LzRt4PKS3;*β¬1Iβ↓A@4PJ*JN"αn6>4)α 2$"ε≡∀HIo'S~β¬α∩ h(%↓α↓↓↓αlzZ⊗5∧⊃2BB:∀4(J↓↓↓↓αα6>Z*↓α 2$"ε≡∃[λ4)↓α↓↓↓↓α↓↓↓↓α↓α6>4*5α eαBε≡*YD4)α↓↓↓↓α↓↓↓↓α↓↓α*∃~Qα≡LzRt4PJR2:*α¬1Qβ↓AA@hP&*J≥!αn6⎇2∃α dJ&ε≡(H%o''→β¬αLJ$4(J↓↓↓↓αα6>Z,iα 2¬αε≡∀hP%↓↓α↓↓α6⎇2∃↓α∩b&&ε<)-D4R↓↓↓↓α↓↓↓↓α↓↓↓αlzZ⊗5∧⊃2BB:∃-DhP%↓↓α↓↓αB<
∞Q↓#↓AAAh(%↓α↓↓↓α%αfB>~↓5EAβ4)↓α↓↓↓↓α↓↓↓↓α↓α*J≥!α≡&⎇"t4(hP&*J≥!αo?/#OSHMαBε≡*YH$$K[;?Qε β∪⊃αiβ3↔"β?WS∨#Iβ#∞s∪3∃εKQ84PI↓↓↓α↓α*J≥ &BJ$"t4(hR≡&>#P&VB<J>P&∃*~~B h(&N-">4&¬αε≡∃k "
$HIoO↔"β3?]ε{K∪↔∩β'QαB∩⊃α-α≥∨Mε≠3?⊗+Iβ'"H4(4UαJR⊃PJN.&∧p&¬2≤bBR&hh(&6⎇2⊗$&
a]]];9\$%X⊂
AαLjB2&-→↓M6$
eαNd*⊗@4PJ∞2.LrP%"
H4(&LrR6NXJmBthP&6>4(&¬2dJ:84PJ&:∞E∩L&λhP&*J≥ &N:|zj∀4PJ∞2.LrP%@hP&&:$jN,&ZiFt4PJ*JN Jε↑ε\(4*Ntz>j∃PJ&6N%8&m5
h4(&≤b.&: I@4(LJ:∞"∃_&λ4PJ*JN J
⊗≤hRε↑ε\)h&∞J8& c T4(LRJNPMZ&:∞E∩\&λhP$&J-~⊗P4PH'7?6)β¬3⊗+OCπ8H%of{∂-β&yβK↔≡+QβSF)βCπ>)βCKNsS↔HhP$'S'KO↔Qε 04(HJ6>Z,Iα¬1λh($&≤b⊗⊗A∧ 04(HJ⊗b&"↓E04PH&*J≥!αNR
∩Rt4PJ∞ε&`J 1 α⊃-YAh(&∞J2∀&∩a e [1A@4PJ∞ε&λh(&*∃~P&n≥*
%α∩a A [1A@4PH%α&m*2%α∩auY@hP$%αlzZ⊗5∧⊃2N2¬"&44PH%α*∃~QαB∃"∩t4PJ6>Z,H&¬1D⊃$4(Lj>Z∀L→2R⊗≥"b`4PJ∞ε&pJ
1uh(&*∃~P&"~ 4(L
:∩$L⊃1EM8H$%ntyα
V≤Z&⊗MbαVBB-∩∞εN(h(&∞J8& b∩∃λ4PJ*JN JnN⊗$z5α⊗lz∩∀$KZO↔Q∧)β7?&(4($Jα*JN"α
⊗≡hh(&∞J8& b∩9λ4PJ*JN JnN⊗%R5α⊗lz∩∀$KZ∂3↔∂⊃α∃βn{∪∃↓jβπ∂ZβS=βv{K7π`h($%∧RJNQ∧∩⊗≡thP&*J≥ &"ε≤@4(2J∞Dr]h&lzZ∃α~bm]Aαa2↑J"iFt4PJ6>Z,iα
2≤BJ@4PJ6>Z,Iα
1(h(&6⎇2⊗5α~b∞∞: h*J∞Dr]IhLJ2∩ ∧→2↑J%4(&%∩:9α~aD4(LRJNQ¬∩∞":⊂h(&6⎇2⊗5α~b↑J⊂hRJ∞!PJN>N<)α∞∞u 4(&U∩NQα∀~":\hP&&2$⊃α
2≤BJ@4PJ∞ε6rα
26
JRελhP%α*∃~QαJ≤@4(&U*6B∃∧→2J∞@h(&*∃~Qα∞∧zB)DhP4*J≤B: hLj>Z∃∧ 2∩2M~R@4PJ∞ε&rα¬2∩dJNR0hP&*J≥!αJ∞Dr$%↑SW7AεK→β3}{/';:βπQβεcπ'9ε{3⊃α¬4(&lzZ⊗%∧→1EDhP&6>4*5α
djεfR⊂$%o≡+QβSzβ'∨;␈∪∃βS∞∪M1β≡K;∂∃∧)β3'v+Mβπ⊗)β←'/∪⊂4(LB2Ji∧ 1"¬HH%o7∂Aα↑J%4(&Db1α¬e:J∩@hP&∞εlaα¬2=∩∩@4PJ*JN"αJ∞"u9H$%↑kπabα↑J∩αaβ/↔/↓β∨?Ns≤4(L
>Mα
b∩2&≥"@4(L~ε&9∧ 2∩2M~R04PIαN⊗%R5α6
JRελHIoK↔≡+QβSzβπ33␈9βSπ↔→β'→ε∪π∂-π#=βCf'9α¬4(&E∩Jiα
a"¬$hP&*Vmα∃α¬e∩∞":⊂H%oO↑KAβk/∪=β↔w#K'↔_h(&"∀b%α¬c!QQQβ4(&lzZ⊗5∧ 2↑J%4(&U∩NQα∀~":]⊂h(4*∀~":
PJ∞ε6rα
2⊗t"RNPhP&B>∧QαA0hP&ε∩"α
2*mα>~_hP&RJtqα
1kλ4(&zN2∃∧∩2.∞u 4(&∧zB)αα`4(&DbJ5α~b↑J∩h(&*∃~QαJ≤B:]HhP2εBu!h%"
I8$%]∩!α≡-"Mα∞dz
⊗∀*⊃αε"αN⊗R¬⊃IαRLj∀4*=∩⊃h%↓95D4T*:∩R≥!h%Ih(4*L∩V→hL∩2>∞XIL4*|∩V→hL∩2>∞XIL4*,rRIhL∩2>∞XIP4*4J2∃hL∩2>∞XIP4*∧"1h&∀b>∞-∧bB∩0hP4**∃"2&9PI@4*d*Rε PI@4*¬α∞ε2cP%@4U"B*6βP%@4U"
2.¬!h%@hR∩BfE!h%@hP4*2Lr9h%h*∞"∃↓h%@hR
2.≤rQh%h*∞∞u!h%@hR6εf$
h%h*↑J%↓h%@hR*6B|2→h%h*2⊗,rQh%h*N2¬"&5hK⊃)uYh*∞
m~Qh%h*∩2,∩V→hK4*∩d*B>MPI@4*D:⊗R"KP%@4T~∞".∀*≥i↓h*⊗6|"∃h%H$$%↑s?k↔⊗yβ'→εK9α∃εk?∪∀hR⊗&:M"⊃h%h(4*$b&NRβP%@4T"2&N#P4*∩dB⊗⊃hK$$$K[≠?I∧)β←'v#?]βF+π∪↔⊂h*↑&t∩2-hL∩2>∞XJ6εb<J8$$K[≠?I∧)β←'v#?]βfK;↔LhR∩2R∀ah%@r E window trailer
DLISTL: 0 ;for PP
; XDPYBU+DPYBSZ-1,,XDPYBU ;for E body
WINLIN: 0
HEDBLK: 0
TRLBLK: 0
ANXTLN: 0
buffpt: 200000,,PPAGE ;double field mode
0
0
PPAGE+1
ersbuf: BYTE (8) 17,0,46 (3) 1,2,1,4 ;funct. code, chan select, funct. code
0
erspt: ersbuf
erspt-ersbuf
0
0
DDAGE: BYTE (8) 46,0,46 (3) 1,2,1,4
BYTE (8) 2,1,10 (3)3,4,5,4
DMAGE: BYTE (7) 177,30,177,30,177
BYTE (7) 30,177,14,140,142
IIAGE: BYTE (11) -1000,700 (3) 0,0 (1) 0,1 (2) 2 (4) 6
BYTE (11) -1000,700 (3) 0,0 (1) 0,1 (2) 2 (4) 6
PPAGE: BYTE (8) 46,0,46 (3) 1,2,1,4
BYTE (8) 2,1,10 (3)3,4,5,4
REPEAT BFSZ,{1}
WINTXT: BLOCK WTXTSZ
END START